﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>FileInstall - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The FileInstall function includes the specified file inside the compiled version of the script." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>FileInstall</h1>

<p>在<a href="../Scripts.htm#ahk2exe">已编译的</a>脚本中包含指定的文件.</p>

<pre class="Syntax"><span class="func">FileInstall</span> Source, Dest <span class="optional">, Overwrite</span></pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>Source</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>要添加到已编译可执行文件中的文件名. 如果没有指定绝对路径, 则假定该文件位于(或相对于) 脚本自己的目录中.</p>
    <p>文件名<strong>不能</strong>包含双引号或通配符. 此参数必须放在 FileInstall 函数的右边而不能在下面(即, 不能在它下面使用<a href="../Scripts.htm#continuation">延续行</a>).</p>
  </dd>

  <dt>Dest</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>当从可执行文件中提取 <em>Source</em> 时, 为其创建的文件的名称. 如果没有指定绝对路径则假定在 <a href="../Variables.htm#WorkingDir">A_WorkingDir</a>. 目标目录必须已经存在.</p>
  </dd>

  <dt>Overwrite</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#boolean">整数(布尔值)</a></p>
    <p>此参数确定是否覆盖已存在的文件. 如果此参数为 1(true), 则该函数将覆盖现有文件. 如果省略或为 0(false), 则该函数不会覆盖现有文件.</p>
  </dd>

</dl>
<h2 id="Error_Handling">错误处理</h2>
<p>失败时抛出异常.</p>

<p>任何不能将文件写到目的地的情况都被认为是失败. 例如:</p>
<ul>
  <li>目标文件已经存在, 并且 <em>Overwrite</em> 参数为 0(false) 或省略.</li>
  <li>由于权限错误, 或由于文件正在使用, 目标文件无法打开.</li>
  <li>目标路径无效或指定了一个不存在的文件夹.</li>
  <li>源文件不存在(只针对未编译的脚本).</li>
</ul>

<h2 id="Remarks">备注</h2>
<p>当 <a href="../Scripts.htm#ahk2exe">Ahk2Exe</a> 在编译脚本的过程中读取对这个函数的调用时, <em>Source</em> 所指定的文件会被添加到所生成的编译脚本中. 之后, 当编译后的脚本 EXE 运行并执行对 FileInstall 的调用时, 该文件会从 EXE 中提取并写入 <em>Dest</em> 指定的位置.</p>
<p>在编译过程中, 添加到脚本中的文件既不会被压缩也不会被加密, 但编译的脚本 EXE 可以通过使用 Ahk2Exe 中适当的选项进行压缩.</p>
<p>如果在普通(未编译) 脚本中使用此函数, 则会简单地复制一个副本 -- 这有助于测试最终将被编译的脚本.</p>

<h2 id="Related">相关</h2>
<p><a href="FileCopy.htm">FileCopy</a>, <a href="_Include.htm">#Include</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a class="ex_number" href="#ExBasic"></a> 在脚本的编译版本中包含一个文本文件. 之后, 当编译后的脚本被执行时, 包含的文件会被解压缩到另一个位置, 并使用指定的名字. 如果这个位置上已经有这个名字的文件, 它将被覆盖.</p>
<pre>FileInstall "My File.txt", A_Desktop "\Example File.txt", 1</pre>
</div>

</body>
</html>